﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Synthesize.BaseSet.ServiceInterface.Dtos.Authority.Menu
{
    /// <summary>
    /// 用户可操作的菜单信息
    /// </summary>
    public class GetUserMenuOutput
    {
        public GetUserMenuOutput() {
            UserMenus = new List<UserMenuInfo>();
            UserPermissions = new List<string>();
        }

        /// <summary>
        /// 用户可操作菜单
        /// </summary>
        public List<UserMenuInfo> UserMenus { get; set; }

        /// <summary>
        /// 用户可操作权限
        /// </summary>
        public List<string> UserPermissions { get; set; }

    }

    /// <summary>
    /// 用户可操作菜单
    /// </summary>
    public class UserMenuInfo {

        /// <summary>
        /// 菜单别名
        /// </summary>
        public string Name
        {
            get; set;
        }

        /// <summary>
        /// 路由地址
        /// </summary>
        public string Path
        {
            get; set;
        }

        /// <summary>
        /// 视图
        /// </summary>
        public string Component
        {
            get; set;
        }

        /// <summary>
        /// 重定向
        /// </summary>
        public string Redirect
        {
            get; set;
        }

        /// <summary>
        /// 元标签
        /// </summary>
        public UserMenuMeta Meta
        {
            get; set;
        }


        /// <summary>
        /// 子节点
        /// </summary>
        public List<UserMenuInfo> Children
        {
            get; set;
        }


    }

    /// <summary>
    /// 元标签
    /// </summary>
    public class UserMenuMeta
    {
        /// <summary>
        /// 菜单图标
        /// </summary>
        public string Icon
        {
            get; set;
        }

        /// <summary>
        /// 标题
        /// </summary>
        public string Title
        {
            get; set;
        }

        /// <summary>
        /// 菜单类型 1 菜单 2iframe 3外连接 
        /// </summary>
        public string Type
        {
            get; set;
        }

        /// <summary>
        /// 是否隐藏菜单
        /// </summary>
        public bool Hidden
        {
            get; set;
        }

        /// <summary>
        /// 菜单高亮
        /// </summary>
        public string Active
        {
            get; set;
        }

        /// <summary>
        /// 颜色
        /// </summary>
        public string Color
        {
            get; set;
        }

        /// <summary>
        /// 整页路由
        /// </summary>
        public bool FullPage
        {
            get; set;
        }

        /// <summary>
        /// 是否整页路由
        /// </summary>
        public bool Affix
        {
            get; set;
        }
    }
}
